package com.ljf.framework.context;

import com.ljf.framework.context.model.LjfRequest;
import com.ljf.framework.context.model.LjfResponse;
import com.ljf.framework.context.model.LjfStorage;

/**
 * 上下文处理器
 *
 */
public interface LjfContext {

	/**
	 * 获取当前请求的 [Request] 对象
	 *
	 * @return see note
	 */
	public LjfRequest getRequest();

	/**
	 * 获取当前请求的 [Response] 对象
	 *
	 * @return see note
	 */
	public LjfResponse getResponse();

	/**
	 * 获取当前请求的 [存储器] 对象
	 *
	 * @return see note
	 */
	public LjfStorage getStorage();

	/**
	 * 校验指定路由匹配符是否可以匹配成功指定路径
	 *
	 * @param pattern 路由匹配符
	 * @param path 需要匹配的路径
	 * @return see note
	 */
	public boolean matchPath(String pattern, String path);

	/**
	 * 此上下文是否有效
	 * @return /
	 */
	public default boolean isValid() {
		return false;
	}

	/**
	 * 同步上下文
	 * @return /
	 */
	public void syncContext(Object object);


	/**
	 * 获取同步对象
	 * @return /
	 */
	public Object getSyncObject();



}
